package com.lagou.session;

import java.util.List;

/**
 * sqlSession
 *
 * @author Tengfei.Wang
 * @date 26/8/2020
 */
public interface SqlSession {

    /**
     * 获取mapper接口的代理对象
     *
     * @param t mapper接口
     * @return 代理对象
     */
    <T> T getMapper(Class<T> t);

    /**
     * 执行查询list方法
     *
     * @param statementId statementId
     * @param params      请求参数
     * @return 查询结果
     */
    <T> List<T> selectList(String statementId, Object params);

    /**
     * 执行查询单条数据方法
     *
     * @param statementId statementId
     * @param params      请求参数
     * @return 查询结果
     */
    <T> T selectOne(String statementId, Object params);

    /**
     * 插入数据
     *
     * @param statementId statementId
     * @param params      请求参数
     */
    <T> void insert(String statementId, Object params);

    /**
     * 修改数据
     *
     * @param statementId statementId
     * @param params      请求参数
     */
    <T> void update(String statementId, Object params);

    /**
     * 删除数据
     *
     * @param statementId statementId
     * @param params      请求参数
     * @param <T>
     */
    <T> void delete(String statementId, Object params);
}
